local ffi = require 'ffi'

ffi.cdef[[
	typedef enum eAudioPedType eAudioPedType;
	typedef enum eSoundEnvironment eSoundEnvironment;
	typedef enum eCopType eCopType;
	typedef enum eObjectType eObjectType;
	typedef enum eMoveState eMoveState;
	typedef enum ePedStats ePedStats;
	typedef enum eCarWeapon eCarWeapon;
	typedef enum eCarLock eCarLock;
	typedef enum eVehicleType eVehicleType;
	typedef enum eVehicleApperance eVehicleApperance;
	typedef enum eVehicleLightsFlags eVehicleLightsFlags;
	typedef enum eVehicleCreatedBy eVehicleCreatedBy;
	typedef enum eBombState eBombState;
	typedef enum eWeaponState eWeaponState;
	typedef enum ePedState ePedState;
	typedef enum ePedType ePedType;
	typedef enum eWeaponType eWeaponType;
	typedef enum eFxSystemKillStatus eFxSystemKillStatus;
	typedef enum eFxSystemPlayStatus eFxSystemPlayStatus;
	typedef enum RwStreamType RwStreamType;
	typedef enum RwStreamMode RwStreamMode;
	typedef enum RpLightType RpLightType;
	typedef enum RpLightFlags RpLightFlags;
	typedef enum RwRasterLockFlags RwRasterLockFlags;
	typedef enum RwCameraType RwCameraType;
	typedef enum eVehicleLightsSize eVehicleLightsSize;
	typedef enum eVehicleHandlingFlags eVehicleHandlingFlags;
	typedef enum eVehicleHandlingModelFlags eVehicleHandlingModelFlags;
	typedef enum eCarNodes eCarNodes;
	typedef enum eDamageState eDamageState;
	typedef enum tComponent tComponent;
	typedef enum tComponentGroup tComponentGroup;
	typedef enum eWheels eWheels;
	typedef enum ePanels ePanels;
	typedef enum eDoors eDoors;
	typedef enum eLights eLights;
	typedef enum eTrainNodes eTrainNodes;
	typedef enum eTrainPassengersGenerationState eTrainPassengersGenerationState;
	typedef enum eBikeNodes eBikeNodes;
	typedef enum eBoatNodes eBoatNodes;
	typedef enum eCamMode eCamMode;

	typedef struct AnimBlendFrameData AnimBlendFrameData;
	typedef struct CAEAudioEntity CAEAudioEntity;
	typedef struct CAEPedAudioEntity CAEPedAudioEntity;
	typedef struct CAEPedSpeechAudioEntity CAEPedSpeechAudioEntity;
	typedef struct CAESound CAESound;
	typedef struct CAETwinLoopSoundEntity CAETwinLoopSoundEntity;
	typedef struct CAEVehicleAudioEntity CAEVehicleAudioEntity;
	typedef struct tVehicleAudioSettings tVehicleAudioSettings;
	typedef struct tVehicleSound tVehicleSound;
	typedef struct CAEWeaponAudioEntity CAEWeaponAudioEntity;
	typedef struct CAutoPilot CAutoPilot;
	typedef struct CNodeAddress CNodeAddress;
	typedef struct CCarPathLinkAddress CCarPathLinkAddress;
	typedef struct CColBox CColBox;
	typedef struct CColDisk CColDisk;
	typedef struct CColLine CColLine;
	typedef struct CCollisionData CCollisionData;
	typedef struct CColModel CColModel;
	typedef struct CColSphere CColSphere;
	typedef struct CColTriangle CColTriangle;
	typedef struct CColTrianglePlane CColTrianglePlane;
	typedef struct CCopPed CCopPed;
	typedef struct CCrimeBeingQd CCrimeBeingQd;
	typedef struct CEntity CEntity;
	typedef struct CEntityScanner CEntityScanner;
	typedef struct CEventGroup CEventGroup;
	typedef struct CEventHandler CEventHandler;
	typedef struct CFire CFire;
	typedef struct CObject CObject;
	typedef struct CObjectInfo CObjectInfo;
	typedef struct CompressedVector CompressedVector;
	typedef struct CPed CPed;
	typedef struct CPedAcquaintance CPedAcquaintance;
	typedef struct CPedClothesDesc CPedClothesDesc;
	typedef struct CPedIK CPedIK;
	typedef struct CPedIntelligence CPedIntelligence;
	typedef struct CPhysical CPhysical;
	typedef struct CPlaceable CPlaceable;
	typedef struct CPlayerData CPlayerData;
	typedef struct CRealTimeShadow CRealTimeShadow;
	typedef struct CReference CReference;
	typedef struct CReferences CReferences;
	typedef struct CShadowCamera CShadowCamera;
	typedef struct CSimpleTransform CSimpleTransform;
	typedef struct CStoredCollPoly CStoredCollPoly;
	typedef struct CTask CTask;
	typedef struct CTaskManager CTaskManager;
	typedef struct CTaskTimer CTaskTimer;
	typedef struct CVehicle CVehicle;
	typedef struct CWanted CWanted;
	typedef struct CWeapon CWeapon;
	typedef struct FxSystem_c FxSystem_c;
	typedef struct tFlyingHandlingData tFlyingHandlingData;
	typedef struct tHandlingData tHandlingData;
	typedef struct CTransmission CTransmission;
	typedef struct tTransmissionGear tTransmissionGear;
	typedef struct CAttractorScanner CAttractorScanner;
	typedef struct C2dEffect C2dEffect;
	typedef struct CEventScanner CEventScanner;
	typedef struct CAEPoliceScannerAudioEntity CAEPoliceScannerAudioEntity;
	typedef struct CAutomobile CAutomobile;
	typedef struct CDamageManager CDamageManager;
	typedef struct CDoor CDoor;
	typedef struct CBouncingPanel CBouncingPanel;
	typedef struct CColPoint CColPoint;
	typedef struct CHeli CHeli;
	typedef struct CPlane CPlane;
	typedef struct CTrain CTrain;
	typedef struct CBike CBike;
	typedef struct CRideAnimData CRideAnimData;
	typedef struct CPool CPool;
	typedef struct CBmx CBmx;
	typedef struct CColourSet CColourSet;
	typedef struct CMatrix CMatrix;
	typedef struct tBoatHandlingData tBoatHandlingData;
	typedef struct CBoat CBoat;
	typedef struct CCamera CCamera;
	typedef struct CCam CCam;
	typedef struct CQueuedMode CQueuedMode;
	typedef struct CCamPathSplines CCamPathSplines;
	typedef struct CWeaponInfo CWeaponInfo;
	typedef struct CPlayerInfo CPlayerInfo;
	typedef struct CPlayerPed  CPlayerPed;
	typedef struct CWeaponEffects CWeaponEffects;

	typedef struct RwV2D RwV2D;
	typedef struct RwV3D RwV3D;
	typedef struct RwPlane RwPlane;
	typedef struct RwBBox RwBBox;
	typedef struct RpGeometry RpGeometry;
	typedef struct RpClump RpClump;
	typedef struct RwRaster RwRaster;
	typedef struct RpMaterialLighting RpMaterialLighting;
	typedef struct RpMaterialList RpMaterialList;
	typedef struct RpMaterial RpMaterial;
	typedef struct RpTriangle RpTriangle;
	typedef struct RwTextureCoordinates RwTextureCoordinates;
	typedef struct RwColor RwColor;
	typedef struct RwColorFloat RwColorFloat;
	typedef struct RwObjectFrame RwObjectFrame;
	typedef struct RpAtomic RpAtomic;
	typedef struct RwCamera RwCamera;
	typedef struct RpLight RpLight;
	typedef struct RwList RwList;
	typedef struct RwListEntry RwListEntry;
	typedef struct RpInterpolation RpInterpolation;
	typedef struct RwObject RwObject;
	typedef struct RwMatrix RwMatrix;
	typedef struct RwTexDictionary RwTexDictionary;
	typedef struct RwCameraFrustum RwCameraFrustum;
	typedef struct RwSphere RwSphere;
	typedef struct RwTexture RwTexture;
	typedef struct RpMaterials RpMaterials;
	typedef struct RwVertex RwVertex;
	typedef struct RwBuffer RwBuffer;
	typedef struct RwBBox RwBBox;
	typedef struct RwFrame RwFrame;
	typedef struct RwStream RwStream;
	typedef struct RwError RwError;

	typedef void*   RpWorld;

	typedef union RwStreamTypeData RwStreamTypeData;
	typedef union tPoolObjectFlags tPoolObjectFlags;
]]
